/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.deployment.manager.visualizar;

import br.com.deployment.entidade.humana.Pessoa;
import br.com.deployment.entidade.localidade.Endereco;
import br.com.deployment.servico.PessoaServico;
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author elyjr
 */
@ManagedBean
@SessionScoped
public class ManagerVisualizarPessoa implements Serializable {

    @EJB
    PessoaServico pessoaServico;
   
    private Pessoa pessoa;
    private List<Pessoa> pessoas;
    private Endereco endereco;
    private boolean exibe = Boolean.TRUE, exibeCnpj = Boolean.TRUE;

    public ManagerVisualizarPessoa() {
        pessoas = new ArrayList<Pessoa>();
    }

    public void redirect(String string, Pessoa p) {
        try {
            FacesContext context = FacesContext.getCurrentInstance();
            pessoa = p;
            endereco = pessoa.getEndereco();
            verificaTipoPessoa();
            context.getExternalContext().redirect(string);
        } catch (IOException ex) {
            Logger.getLogger(ManagerVisualizarPessoa.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    
    public void redirect(String s) {
        FacesContext context = FacesContext.getCurrentInstance();
        try {
            pessoa = new Pessoa();
            endereco = new Endereco();
            context.getExternalContext().redirect(s);
        } catch (IOException ex) {
            Logger.getLogger(ManagerVisualizarPessoa.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    

    public void verificaTipoPessoa() {
        if (pessoa.getCpf() == null && pessoa.getRg() == null
                && pessoa.getEstadocivil() == null && pessoa.getSexo() == null) {
            setExibe(Boolean.FALSE);
            setExibeCnpj(Boolean.TRUE);
        } else {
            setExibe(Boolean.TRUE);
            setExibeCnpj(Boolean.FALSE);
        }
    }

    public Pessoa getPessoa() {
        return pessoa;
    }

    public void setPessoa(Pessoa pessoa) {
        this.pessoa = pessoa;
    }

    public List<Pessoa> getPessoas() {
        pessoas = pessoaServico.pessoasOrder();
        return pessoas;
    }

    public void setPessoas(List<Pessoa> pessoas) {
        this.pessoas = pessoas;
    }

    public Endereco getEndereco() {
        return endereco;
    }

    public void setEndereco(Endereco endereco) {
        this.endereco = endereco;
    }

    public boolean isExibe() {
        return exibe;
    }

    public void setExibe(boolean exibe) {
        this.exibe = exibe;
    }

    public boolean isExibeCnpj() {
        return exibeCnpj;
    }

    public void setExibeCnpj(boolean exibeCnpj) {
        this.exibeCnpj = exibeCnpj;
    }
}
